Загрузка Petalinux через TFTP и NFS

Настройка TFTP-сервера

В этой среде каталогом сервера является /srv/tftp.

Конфигурация Petalinux (для TFTP)

 

image-20250825140239589

image-20250825141522889

Выберите Command line interface-> Network commands->serverip variable takes precedent over DHCP server IP

image-20250825141947553

image-20250825142026532

image-20250825142052483

Загрузка Petalinux с использованием TFTP

Выполните следующие шаги для подключения платы разработки к компьютеру. Шаги в основном те же, что и раньше.

В этом состоянии загрузчик отсутствует, и на последовательной консоли еще нет вывода. Для загрузки через JTAG выполните следующую команду в каталоге проекта Petalinux на хост-компьютере:

Это выведет логи загрузки в последовательную консоль.

Примечание: Если при вводе petalinux-boot --jtag --u-boot --fpga --hw_server-url TCP:Ubuntu20:3121 возникает ошибка, проверьте следующее:

Настройте u-boot на этой последовательной консоли для загрузки по TFTP.

Настройка завершена. Перезагрузите плату разработки, затем снова выполните petalinux-boot --jtag --u-boot --fpga --hw_server-url TCP:Ubuntu20:3121. Linux загрузится, и вы сможете войти в систему, как и раньше.

Поскольку команда dhcp;pxe get;pxe boot; использует DHCP для автоматического назначения IP-адреса, что может привести к сбою входа в систему Linux, на этом шаге вы можете установить IP-адрес платы. Убедитесь, что IP-адреса с обеих сторон совпадают.

Теперь вы можете загружать Petalinux по сети с помощью TFTP. Таким образом, вам не нужно каждый раз помещать образы на SD-карту после кастомизации и запуска petalinux-build. Требуется перезагрузка платы разработки по питанию.

Однако при этом методе rootfs.cpio.gz.u-boot извлекается и используется при каждой загрузке, и любые внесенные изменения не будут сохранены после запуска Linux.

Если rootfs настроен на размещение в разделе ROOT SD-карты, результаты изменений будут сохранены на SD-карте.

Эту проблему можно решить с помощью NFS (см. следующий раздел):

Настройка NFS-сервера

Конфигурация Petalinux (для NFS)

Запустите petalinux-config, выберите Image Packaging Configuration и измените Root filesystem type на NFS. Измените Location of NFS root directory на каталог NFS-сервера /srv/nfs.

image-20250826145501180

 

NFS 4.1 появляется после включения NFS 4, NFS 4.2 появляется после включения NFS 4.1.

image-20250825101940757

image-20250825102358625

Соберите дерево устройств, чтобы увидеть изменения: оно содержит информацию, связанную с NFS.

 

Загрузка Petalinux с использованием TFTP + NFS

Поскольку rootfs находится на хост-компьютере, любое отредактированное содержимое не будет потеряно при каждой перезагрузке платы.